//
//  ViewController.swift
//  SQLite使用(了解)
//
//  Created by iOS on 16/10/7.
//  Copyright © 2016年 iOS. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
//        testInsert()
//        testUpdate()
//        testDelete()
//        testQuery()
        testManyInsert()
    }
    
    // 往数据库批量添加数据
    private func testManyInsert() {
        print("开始...")
        let start = CACurrentMediaTime()
        
        // 使用事务
        // 开启事务
        _ = SQLiteManager.shared.execSQL(sql: "BEGIN TRANSACTION")
        
        for i in 0..<10000 {
            let sql = "INSERT INTO T_Person (name, age, height) VALUES ('张三\(i)', 20, 1.66);"
            
            // SQLite默认在执行SQL语句前会开启事务,执行完SQL语句提交事务
            // 当我们开启了事务后,SQLite不会再主动开启和提交事务
            _ = SQLiteManager.shared.execSQL(sql: sql)
            
            if i == 1000 {
                print("模拟失败")
                // 回滚事务,回到事务开启的时候
                _ = SQLiteManager.shared.execSQL(sql: "ROLLBACK")
                break
            }
        }
        
        // 提交事务
        _ = SQLiteManager.shared.execSQL(sql: "COMMIT TRANSACTION")
        
        let end = CACurrentMediaTime()
        
        print("耗时: \(end - start)")
    }
    
    /// 查询数据
    private func testQuery() {
        // sql
        let sql = "SELECT * FROM T_Person LIMIT 0, 5;"
        
        SQLiteManager.shared.execQuery(sql: sql)
    }
    
    /// 删除数据
    private func testDelete() {
        // sql
        let sql = "DELETE FROM T_Person WHERE id = 1;"
        
        // 执行
        if SQLiteManager.shared.execSQL(sql: sql) {
            print("删除数据成功了")
        }
    }
    
    /// 修改数据
    private func testUpdate() {
        // sql
        let sql = "UPDATE T_Person SET name = '刘德华2' WHERE id = 2;"
        
        // 执行
        if SQLiteManager.shared.execSQL(sql: sql) {
            print("修改数据成功了")
        }
    }
    
    /// 添加数据
    private func testInsert() {
        // sql语句
        let sql = "INSERT INTO T_Person (name, age, height) VALUES ('lisi', 22, 1.72);"
        
        // 执行
        if SQLiteManager.shared.execSQL(sql: sql) {
            print("添加数据成功了")
        }
    }
}

